package main

import (
	"log"
	"os"
)

func logExample() {
	// a. 日志一般使用
	// 为日志添加文件名、行号和微秒时间
	log.SetFlags(log.Lshortfile | log.Lmicroseconds | log.Lmicroseconds)
	// 为日志添加前缀“[xieli] ”
	log.SetPrefix("[xieli] ")

	log.Println("这是一条普通的日志")
	log.Printf("这是一条%s日志\n", "普通的")
	// log.Fatalln("这是一条会触发fatal的日志")
	// log.Panicln("这是一条会触发panic的日志")

	// b. 存储日志到文件，一般写到init函数中
	logFile, err := os.OpenFile("data/log.log", os.O_CREATE|os.O_WRONLY|os.O_APPEND, 0644)
	if err != nil {
		log.Fatalln("open log file failed, err:", err)
	}
	log.SetOutput(logFile)
	log.Println("这是一条存储到文件的日志")

	// c. 创建logger
	logger := log.New(os.Stdout, "xieli ", log.Lshortfile|log.Ldate|log.Ltime)
	logger.Println("这是自定义的logger记录的日志")
}
